package com.sumset.entidades;

import java.io.Serializable;
import java.lang.Integer;
import java.lang.String;
import java.util.Date;
import javax.persistence.*;
import static javax.persistence.TemporalType.TIMESTAMP;
import static javax.persistence.GenerationType.IDENTITY;

/**
 *Descripcion Clase: Esta clase es donde estan todos los atributos necesarios para 
 *manipular una llamada.
 *Responsabilidades: Es la clase encargada de implementar las entidades y todos los 
 *datos de la misma.
 *Fecha de Creacion: 21/02/2012
 * @author andres*/
@Entity

public class Llamada implements Serializable {

	@Id
	@GeneratedValue(strategy = IDENTITY)
	private Long id;
	
	private String asunto;
	@Temporal(TIMESTAMP)
	private Date fechaHoraSolicitud;
	private Integer duracionAproximada;
	private String descripcion;
	private String estado;
	private String tipo;
	@ManyToOne
	private Usuario usuario;

	public Llamada() {
		super();
	}   
	
	//--------------------Metodos Getters y Setters-----------------
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getAsunto() {
		return this.asunto;
	}

	public void setAsunto(String asunto) {
		this.asunto = asunto;
	}   
	public Date getFechaHoraSolicitud() {
		return this.fechaHoraSolicitud;
	}

	public void setFechaHoraSolicitud(Date fechaHoraSolicitud) {
		this.fechaHoraSolicitud = fechaHoraSolicitud;
	}   
	public Integer getDuracionAproximada() {
		return this.duracionAproximada;
	}

	public void setDuracionAproximada(Integer duracionAproximada) {
		this.duracionAproximada = duracionAproximada;
	}   
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}   
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}   
	public String getTipo() {
		return this.tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Llamada other = (Llamada) obj;
		if (getId() == null) {
			if (other.getId() != null)
				return false;
		} else if (!getId().equals(other.getId()))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Llamada [id=" + id + ", asunto=" + asunto
				+ ", fechaHoraSolicitud=" + fechaHoraSolicitud
				+ ", duracionAproximada=" + duracionAproximada
				+ ", descripcion=" + descripcion + ", estado=" + estado
				+ ", tipo=" + tipo + ", usuario=" + usuario + "]";
	}
	
	
	
   
}
